home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / 3rdparty / nostop.new < prev    next >
Text File  |  1993-10-22  |  20KB  |  409 lines

  1.  (C) 1989,90,91,92,93 NONSTOP NETWORKS LIMITED.
  2. ***PREPARE FOR A CRASH!***
  3. It is inevitable that your Primary Server will someday crash.
  4. No*STOP NETWORK, of course, will keep you running on the Secondary.
  5. It does not, however, automatically provide Secondary Server login
  6. capability. You must do this yourself by creating login scripts in
  7. advance on the Secondary Server for use when your Primary Server is
  8. down. These login scripts should, in most cases, be the same as the
  9. login scripts that were on your Primary Server before you installed
  10. No*STOP NETWORK. Only the server name will be different. This ensures
  11. that users who were not on the system at the time of the crash, or
  12. those who were on the system but subsequently logged out, will be
  13. able to login to the Secondary Server and use it while the Primary
  14. Server is being repaired. [REMEMBER TO RUN RECOVERY (SEC->PRIM)
  15. AFTER THE PRIMARY HAS BEEN REPAIRED AND BEFORE MIRRORING IS
  16. RESTARTED]
  17.  
  18. ************USER CONTROL***************************
  19. OK, so you took the advice above so your users can access the Secondary
  20. Server while the Primary Server is down for repairs. So what's to keep
  21. them from logging on to the Secondary Server when the Primary Server is
  22. up? That could be a very bad situation. What is needed is a way to keep
  23. users from logging in to the Secondary unless the Primary is off-line.
  24. The example below is for users of Netware 3.x. The GOTO command is not
  25. supported for Netware 2.x. The lines in the example should be inserted
  26. at the beginning of the Secondary Server system login script. It keeps
  27. all users except the SUPERVISOR from logging in to the Secondary Server
  28. if the Primary Server is up. In this example, the SUPERVISOR is allowed
  29. in under the presumption that supervisors need to get in to do non-
  30. mirrored maintenence tasks. To lock the SUPERVISOR out as well, delete the
  31. first line.
  32.  
  33. IF LOGIN_NAME == "SUPERVISOR" THEN GOTO OK2
  34. ATTACH (primary_server_name)
  35. IF ERROR_LEVEL != "0" THEN GOTO OK
  36. FIRE PHASERS 5 TIMES
  37. WRITE "YOU CANNOT LOGIN TO (secondary_server_name)!!!"
  38.   
  39.   [At this point you should delete all mappings established
  40.   by the system login script]
  41.  
  42. EXIT
  43. OK:
  44. WRITE "OK, SINCE (primary_server_name) IS DOWN, YOU MAY USE (secondary_name)"
  45. OK2:  
  46.   [The normal login script begins here]
  47.  
  48. We would appreciate any ideas for doing this easier or better.
  49.  
  50. ***Handles Tip ***
  51. As explained in the Manual, if you use 20 Handles without
  52. us, you will use another one for every file that is open
  53. concurrently and mirrored when we are running. Also, you
  54. are advised to increase the CONFIG.SYS parameter to include
  55. the number of originals plus the number of mirrors. If, then,
  56. this number is exceeded, NOSTOP will abort the process.
  57. To avoid being aborted and let the application process the
  58. error, set the CONFIG.SYS parameter to some number less than
  59. the total number needed. If this is done, DOS will run out of
  60. handles before NOSTOP does, thus the normal DOS error
  61. will be passed to the application. When doing this, you may get
  62. our "MIRROR MISMATCH" error message. In this case, either reduce
  63. or increment the "FILES=" parameter by one and retry.
  64.  
  65. Related to the above instruction: If you are getting "MIRROR
  66. MISMATCH" errors when you know there is no actual mismatch, the
  67. problem probably is caused by the "FILES=" parameter in CONFIG.SYS
  68. being set too low.
  69.  
  70. ***RECOVERY OF APPLICATION PROGRAM FILES***
  71. There are three methods for installing applications in preparation
  72. for mirroring:
  73.     #1  Turn on No*STOP NETWORK and mirror the installation
  74.     #2  Install on each server separately    
  75.     #3  Install on one server and copy application
  76.         directories to the other server. This is best done
  77.         using the RECOVERY utility included on the No*STOP
  78.         NETWORK diskette.
  79. In almost all cases, any method will work. In the case where
  80. an application required separate installation on each server
  81. (method #2), it is likely that server-unique data and/or
  82. structures are being created during installation. In this case,
  83. straightforward use of the recovery utilities will not be
  84. adequate when recovering from a server failure. In the worst case,
  85. the application will have to be re-installed on the recovered
  86. server. It may be possible in some cases, however, to prepare
  87. in advance for recovery by performing the following steps:
  88.   1. Install on the Primary Server to subdirectory \[app].
  89.   2. Install on the Secondary Server to subdirectory \[app].
  90.   3. Copy from Primary:[app] to Secondary:[appB].
  91.   4. Copy from Secondary:[app] to Primary:[appB].
  92.   5. When a server fails, run the recovery utilities.
  93.   6. Copy from "GOOD" Server:[appB] to "BAD" Server:[app].
  94.   7. And, to prepare for the next failure,
  95.   8. Copy from "GOOD" Server:[app] to "BAD" Server:[appB].
  96. If this works, it will make re-installation unnecessary.
  97.  
  98.  ***INCOMPATIBILITIES***
  99.  Until further notice, be advised that we are incompatible with the
  100.  following software:
  101.     LOTUS MAGELLAN - Total incompatibility.
  102.     WINDOWS SMARTDRIVE - When using the WINDOWS version of
  103.         SMARTDRIVE (3-10-92), you may experience problems
  104.         when a drive goes down, which can interfere with the
  105.         continuous processing functions of No*STOP NETWORK.
  106.         There is no problem with DOS 5 or 6 SMARTDRIVE.
  107.     MS-DOS 6.0 - When running WINDOWS (3.1 or WFW) under DOS 6.0,
  108.         your workstation may hang if you exit WINDOWS directly
  109.         after a server has failed. DOS 6 passed all of the other
  110.         tests in our validation suite with flying colors. Stay tuned.
  111.         
  112.         Update: We have found that the Novell patches in DOSUP7 and
  113.         WINUP7 make the situation worse - the workstation hangs
  114.         immediately after downing the server.
  115.  
  116.         Update: One of our validation tests hangs, EVEN UNMIRRORED,
  117.         when DBLSPACE is active. The test is a COBOL program running
  118.         on LANTASTIC 5.0. The error message is:
  119.         "PSLINEHF segment RT: Error 198 @ COBOL PC086D"
  120.         The test runs perfectly, mirrored or unmirrored, when
  121.         DBLSPACE is not active.
  122.  
  123. ********************************************************************
  124. HERE ARE SOME ADDITIONS TO THE NEXT VERSION OF THE MANUAL WHICH YOU
  125. MAY FIND USEFUL.
  126. ********************************************************************
  127.  
  128. 3.5  Avoid Split Network Danger
  129. Used incorrectly, server mirroring can introduce a danger not
  130. present in an un-mirrored environment - data can be corrupted
  131. when a split network is created due to the failure or partial
  132. inaccessibility of a server.  This section will describe how a split
  133. network occurs and will define the actions necessary to avoid
  134. data corruption.
  135.  
  136. 3.5.1  Local Area Network Cabling Topology
  137. In a linear, "daisy-chain", network the potential exists for what is
  138. called a "split network".  A split network is created when servers
  139. which are not topologically next to each other are cut off from
  140. each other by the failure of a link in the network, such that some
  141. workstations can access one of the servers and other workstations can
  142. access the other server, one or more workstations being unable to access
  143. both servers.  When mirroring servers, a split network condition can have
  144. the result that some workstations are updating the data base on one
  145. server, while other workstations are updating the data base on the other
  146. server.  This causes the versions of the data base on the two servers to
  147. diverge.  If the link is re-established and the servers are re-synchronized
  148. by using No*STOP RECOVERY (or any other similar method), the updates
  149. performed on one of the servers will be lost.  For this reason, attention
  150. should be given to the logical topology of your network when mirroring
  151. servers. 
  152. There are two simple rules to follow for daisy chain networks:
  153.  
  154.     o  ALWAYS LOCATE YOUR SERVERS NEXT TO EACH
  155.        OTHER TOPOLOGICALLY,
  156.     o  ALWAYS LOCATE YOUR SERVERS AT THE END OF
  157.        THE CHAIN (either end will do).
  158.  
  159. [sorry, figures unavailable]
  160.  
  161. Figure 1 illustrates a good topology:
  162.     A.  The link between servers 1 and 2 is broken.
  163.     Both workstations continue to acces server2.
  164.     B.  The link between workstations 1 and 2 is broken:
  165.     Workstation1 continues to access both servers.
  166.     Workstation2 can access neither server.
  167.     C.  The link between the servers and the workstations is  
  168.     broken:
  169.     Neither workstation can access either server.
  170. In all cases, the integrity of the data base is uncompromised.
  171.  
  172. Figure 2 illustrates a bad topology:
  173.     D.  The link between server1 and workstation1 is broken:
  174.     Both workstations continue to access server2.
  175.     E.  The link between workstation2 and server2 is broken:
  176.     Both workstations continue to access server1.
  177.     F.  The link between workstations 1 and 2 is broken:
  178.     Workstation1 continues to access server1.
  179.     Workstation2 continues to access server2.
  180. In cases D and E, the integrity of the data base is maintained.
  181. In case F, the two servers will develop different versions of the
  182. data base.  If the two are not synchronized data corruption is
  183. likely to occur.  If they are synchronized, updates to one of the
  184. servers will be lost.
  185.  
  186. Figure 3 illustrates another bad topology:
  187.     G.  The link between workstation1 and server1 is broken:
  188.     Workstation1 can access neither server.
  189.     Workstation2 continues to access both servers.
  190.     H.  The link between server2 and workstation2 is broken:
  191.     Workstation1 continues to access both servers.
  192.     Workstation2 can access neither server.
  193.     I.  The link between servers 1 and 2 is broken:
  194.     Workstation1 continues to access server1.
  195.     Workstation2 continues to access server2.
  196. In cases G and H, the integrity of the data base is maintained.
  197. In case I, the two servers will develop different versions of the
  198. data base.  If the two are not synchronized data corruption is
  199. likely to occur.  If they are synchronized, updates to one of the
  200. servers will be lost.
  201.  
  202. Ring network topologies, such as IBM Token Ring, do not
  203. exhibit this design vulnerability.
  204.  
  205. 3.5.2  Wide Area Network Connections
  206. If your network has servers that are separated geographically
  207. such that a communications link is required, it is, almost by
  208. definition, a latent split network.  If the link is cut, the users at
  209. the separate sites will be updating their respective locally
  210. resident servers without reference to the distant servers.  The
  211. word "almost" is used because it is still possible to put both
  212. servers at the same end of the network, that is, at the same site. 
  213. In this case, if the communications link is broken, the users at
  214. the non-servered site will lose access to both servers.  Some
  215. enterprises can live with this, others can not.  Also, in this
  216. configuration, any possible performance benefits of cross-
  217. mirroring due to nearness will be lost to the remote site. 
  218. Performance benefits of cross mirroring due to load leveling will
  219. still accrue.
  220.  
  221. 3.5.3  Non-Dedicated Servers
  222. In some installations one (or both) of the servers is enlisted for
  223. double duty - as a server for the network and as a workstation. 
  224. In this case, the network is split by definition.  If the cable
  225. attached to the server/workstation fails or is knocked loose, the
  226. workstation partition will lose the other server but can still
  227. update its resident server.  The other workstations will lose the
  228. isolated server but can still update the other server.  This
  229. configuration can be thought of as introducing an additional
  230. termination to the topology, with a workstation at the end.
  231.  
  232. 3.5.4  Dealing With The Problem
  233.  
  234. Some subset the of universe of installations will be, for varying
  235. reasons, unable to avoid the occurence of a split network. 
  236. Most, if not all of these reasons will be physical.  Most of the
  237. members of this subset, however, will not be unduly
  238. discommoded by a split network, or at least will find the benefits
  239. of mirroring to outweigh the inconveniences brought about by a
  240. network which has been split due to partial server inaccessibility.
  241.  
  242. 3.5.4.1  Defining The Problem
  243.  
  244. The danger inherent in a split network is, as described above,
  245. that separate groups of clients can be updating separate
  246. servers, creating two versions of the data base.
  247.  
  248. 3.5.4.1.1  Lost Updates
  249. The updates made to one of the servers will be lost during Recovery.
  250.  
  251. 3.5.4.1.2  Data Base Corruption
  252. It is possible, depending on the nature of activity against the
  253. data base, that it will be corrupted.
  254.  
  255. 3.5.4.1.3  Incomplete Data
  256. Incomplete data is defined as data that is correct in itself, but
  257. which is not as rich in information as it could be.  Users on
  258. different sides of the split may be working without the benefit of
  259. updates from the other side.  The severity of this situation
  260. depends on the nature of the enterprise and the length of time
  261. the split persists.  In any case, by definition for this discourse,
  262. it is considered better to be working with incomplete data than
  263. not to be working at all.  For example, in a mail advertising
  264. campaign, it is better to send advertising copy to prospects
  265. recently removed from the data base, or to fail to send to
  266. prospects recently added, than to send no mail at all.
  267.  
  268. 3.5.4.1.4  Erroneous Data
  269. Erroneus data is defined as data that can lead to inappropriate
  270. and damaging action.  The damage can be to the data base or
  271. directly to the operations of the enterprise it supports.  Thus,
  272. nearly simultaneous withdrawals from an account at different
  273. branch offices of a bank which together, but not separately,
  274. exceed the balance of an account can expose the bank to fraud
  275. if the branches are on different sides of a split network.
  276.  
  277. Fortunately, there are several ways to completely avoid these
  278. dangers.  Some of these methods, however, will cause
  279. inconvenience.
  280.  
  281. 3.5.4.2  Removing The Danger
  282. If you find it impossible to avoid a latent split network, it is
  283. prudent to take measures which will guarantee that no danger
  284. to your data base or operations exists.  The key concept in
  285. avoiding danger to the data base is that when the network
  286. becomes split, updates to common data must be restricted to
  287. only one of the servers.
  288.  
  289. 3.5.4.2.1  Partition by Data
  290. In the best of worlds, you will be able to partition your users
  291. such that those on one side of the potential split are performing
  292. activities against data completely unrelated to those on the other
  293. side.  Suppose, for instance, that the latent split situation is
  294. forcrd on you by the geographic separation of offices, one of
  295. which performs CAD/CAM operations related to engineering
  296. design, and one of which performs accounting operations in
  297. support of day to day operation of the business.  In this case, if
  298. communications between the two offices, while creating a split
  299. network, will not effect operations.  Indeed, this situation
  300. presents opportunities for performance enhancement through
  301. the use of cross mirroring. Take note, however, that in this situation,
  302. special Recovery procedures must be followed after re-establishing the
  303. link between the two splits.  In short, two Recovery jobs must be
  304. run, one for each of the partitions, and each in a different
  305. direction.
  306.  
  307. 3.5.4.2.2  Partition by Access
  308.  
  309. If your users can be partitioned such that those on one side of
  310. the split are only reading the data base, the situation is almost
  311. as good as if they were partitioned by data.  Thus, if the link is
  312. broken, they can continue operations with no danger to the data
  313. base, albeit with slightly out of date data.  The mail advertising
  314. operation can again be used as an example.  One site may
  315. have the responsibility of updating the data base of addresses
  316. while the other site is reading the data base to support their
  317. mailings.
  318.  
  319. 3.5.4.2.3  Partition by Expendability
  320. If you are not fortunate enough to be able to partition by data or
  321. access, you will have to bite the bullet and forcibly restrict
  322. access to the data base by one of the sides of the split. 
  323. Operational measures must be taken to ensure that only one
  324. side is updating.  The easiest fool-proof way to do this is as
  325. follows:
  326.     o   Choose which side is expendable.
  327.     o   Invoke No*STOP NETWORK for the expendable side
  328.     with message redirection, changing the default
  329.     response to a drive failure from "DROP AND
  330.     CONTINUE" to "ABORT".
  331.     o   After they have aborted, you can, depending on your
  332.     operations, re-institute them as READ-ONLY users,
  333.     put them into transaction logging mode for delayed
  334.     updates), put them to other tasks which do not
  335.     reference the data base, or leave them idle.
  336.  
  337. 3.6  Performance Enhancement Notes
  338.  
  339. Some thought should be given to performance issues when
  340. designing your network for mirroring.  Although the overhead
  341. imposed by No*STOP NETWORK is small, care should be taken
  342. during the design phase to minimize it.  In some cases
  343. No*STOP NETWORK, judiciously employed, can actually
  344. improve the performance of your network.  The following
  345. guidelines all spring from the fact that No*STOP NETWORK
  346. does not mirror READs.
  347.  
  348. 3.6.1  Read From The Faster Server
  349. If your servers are of unequal speeds, make the faster server
  350. your Primary when declaring drive pairs.  In this way you will be
  351. retrieving data from the most efficient resource.
  352.  
  353. 3.6.2  Bring Your Data Closer
  354. There is an opportunity in certain types of installations to
  355. significantly improve retrieval times for all or some of the users. 
  356. If, for instance their work consists of extensive searches of a
  357. data base, perhaps correlating data into information via repeated
  358. complex queries, this work could be speeded up significantly by
  359. doing those queries on local equipment.  If the users have
  360. sufficient local resources, they can download the data base and
  361. supporting files such as indexes to their local hard drive and
  362. declare it (or a subdirectory of it) the Primary.  In this way, all
  363. READs are performed locally without reference to the network. 
  364. This can speed up response at the workstation while at the
  365. same time reducing traffic on the network.  An even more
  366. dramatic improvement is possible if a workstation RAM drive can
  367. be declared the Primary.
  368.  
  369. This approach is, of course, not for all enterprises.  Of largest
  370. concern is the fact that it creates a latent split network by
  371. mimicking a non-dedicated server at each workstation using it.  
  372. It should also be noted that the users addressing their
  373. local resources will not have access to updates performed since
  374. their most recent download.  If this is not of paramount concern,
  375. or if the data being accessed locally is private data, such as an
  376. intelligence analyst's "shoebox" files, this approacch can, with
  377. careful planning provide large benefits.  Bear in mind that the
  378. flexibility of No*STOP NETWORK will allow you to define drive
  379. pairs such that one or more pairs can support the local activity
  380. (e.g., C: to F:), while other pairs can support access to a
  381. common data base (e.g., L; to M:), possibly to send updates
  382. based on investigation of private files.  If the users performing
  383. local processing wish to have their private files maintained on
  384. two file servers for maximum safety, No*STOP NETWORK-MM
  385. can be used to support more than one Secondary server (e.g.,
  386. C: to F: to G:).
  387.  
  388. 3.6.3  Cross Mirroring to Level the Load
  389. If you have purchased a second file server in order to gain the
  390. benefits of Level 3 Fault Tolerance, you may be pleasantly
  391. surprised to discover that yours may be the type of enterprise
  392. which can derive performance benefits from this extra server.
  393.  
  394. If your users can be partitioned according to the data they use,
  395. you can cross mirror so that one group of users are doing their
  396. READ accesses on one server, while the other half is doing
  397. them on the other server, thus providing a form of parallel
  398. access to the network for retrieval activity.  For example, if you
  399. have a user group performing CAD/CAM activities in support of
  400. engineering design, and another group of users performing
  401. corporate accounting activities, they are more than likely
  402. accessing completely disparate data, having no data in
  403. common.  In this case there is no danger of data corruption, and
  404. whereas before one server was doing all the READing, now
  405. another server is enlisted to share the load.  To accomplish
  406. cross mirroring in the example cited, simply turn
  407. No*STOP NETWORK on for the engineers, mirroring from, for
  408. example, F: to G:, and, for the accountants, from G: to F:.
  409.